clear all
close all
clc

% straight line 1 of the athletic track
x1=-10:0.2:10;
y1=0*x1+5;

% semi-circle 1 of the athletic track
theta=pi/2:-0.04:-pi/2;
x2=5*cos(theta)+10;
y2=5*sin(theta);

% straight line 2 of the athletic track
x3=10:-0.2:-10;
y3=0*x3-5;

% semi-circle 2 of the athletic track
theta=3*pi/2:-0.04:pi/2;
x4=5*cos(theta)-10;
y4=5*sin(theta);

% Include straight lines and semi-circles to get an entire athletic track
x=[x1 x2 x3 x4];
y=[y1 y2 y3 y4];

% Two cycles of the athletic track
x=[x x];
y=[y y];

% plot the athletic track
plot(x,y)
axis([-16,16,-6,6])
axis equal
hold on

for i=1:length(x)
    k1=fix(1.1*i);   % define velocity of the 1st player (uniform velocity)
    if k1>length(x)
        k1=length(x);
    end
    h1=plot(x(k1),y(k1),'Color',[1 0 0],'Marker','o','LineWidth',5); % show location of the 1st player
    
    k2=fix(1+5*i^(0.76)); % define velocity of the 2nd player (faster at the beginning, then slower)
    if k2>length(x)
        k2=length(x);
    end
    h2=plot(x(k2),y(k2),'Color',[k2/length(x) 0 k2/length(x)],'Marker','s','LineWidth',5); % show location of the 2nd player
    
    k3=fix(1+exp(0.012*i)); % define velocity of the 3rd player (slower at the beginning, then faster)
    if k3>length(x)
        k3=length(x);
    end
    h3=plot(x(k3),y(k3),'Color',[rand rand rand],'Marker','v','LineWidth',5);  % show location of the 3rd player
    
    pause(0.05)  % pause to show the locations of players
    drawnow
    delete(h1)
    delete(h2)
    delete(h3)
end